package com.blb.service;

import com.blb.entity.Label;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author lifeng
 * @since 2019-12-20
 */
public interface ILabelService extends IService<Label> {
    /**
     * 查看标签列表
     * @param userId
     * @return
     */
    List<Label> listLabel(String userId);
    /**
     * 删除标签 返回标签id
     * @param labelName
     * @param userId
     */
    String delGetLabelId(String labelName, String userId);
    /**
     * 删除关系标签中
     * @param labelId
     */
    void delLabel2(String labelId,String notesId);
    /**
     * 重命名标签
     * @param label
     */
    void updateLabel(Label label);

    /**
     * 通过labelId找到noteId
     * @param labelId
     * @return
     */
    List<String> byLabelGetNote(String labelId);

    /**
     * 通过noteId找到LabelId
     * @param notesId
     * @return
     */
    List<String> byNoteGetLabels(String notesId);
    /**
     * 通过笔记名找到笔记id
     * @param notesName
     * @return
     */
    String byNoteNameGetNoteId(String notesName,String userId);
    /**
     * 查看是否存在该标签
     * @param labelName
     * @param userId
     * @return
     */
    String getLabel2(String labelName, String userId);

    /**
     * 删除关系标签中的labelId
     * @param labelId
     */
    void delNoteLabelByLabel(String labelId);
    /**
     * 查看关系表是否有当前关系
     * @param labelId
     * @param notesId
     * @return
     */
    String getRelation(String labelId, String notesId);



    //手机端方法---------------------------------

    /**
     * 标签以及对应的笔记数量
     * @return
     */
    List<Label> MyLabelList(String userId);

    /**
     * 笔记对应的标签id
     * @return
     */
    List<Label> thisLabelid(String notesId);

    void updateById(String id,String labelName);

    /**
     * 添加笔记对应的标签id
     * @param id
     * @param notesId
     * @param labelId
     */
    void addThisLabel(String id,String labelId,String notesId,String userId);

    /**
     * 删除笔记对应的标签
     * @param labelId
     * @param notesId
     */
    void delThisLabel(String labelId,String notesId);

    //手机端方法---------------------------------

}
